package main

import (
	"github.com/labstack/echo/v4"
	"io"
	"net/http"
	"os"
)

func main() {

	e := echo.New()

	e.POST("/user/save", saveUser)
	e.POST("/file/save", saveFile)

	e.Start(":80")
}

// saveUser
//
//	@Description: 表单 application/x-www-form-urlencoded
//	@param c
//	@return error
func saveUser(c echo.Context) error {
	name := c.FormValue("name")
	email := c.FormValue("email")
	return c.String(http.StatusOK, name+"-"+email)
}

// saveFile
//
//	@Description: 表单 multipart/form-data
//	@param c
//	@return error
func saveFile(c echo.Context) error {
	name := c.FormValue("name")
	file, err := c.FormFile("file")
	if err != nil {
		return err
	}
	src, err := file.Open()
	if err != nil {
		return err
	}
	defer src.Close()

	//创建文件
	dst, err := os.Create(file.Filename)
	if err != nil {
		return err
	}

	//赋值文件
	_, err = io.Copy(dst, src)
	if err != nil {
		return err
	}

	return c.HTML(http.StatusOK, "<br> thank you"+name+"</br>")

}
